Some extensions out there may fail to reload. When that happens,
we need to catch any exceptions so that we don't leave things in
a broken state that could lead to leaving extensions enabled in
the screen shield.
https://bugzilla.gnome.org/show_bug.cgi?id=781728
// temporarily disable them all
enabledExtensions = [];
for (let uuid in ExtensionUtils.extensions)
- reloadExtension(ExtensionUtils.extensions[uuid]);
+ try {
+ reloadExtension(ExtensionUtils.extensions[uuid]);
+ } catch(e) {
+ logExtensionError(uuid, e);
+ }
enabledExtensions = getEnabledExtensions();
if (Main.sessionMode.allowExtensions) {
enabledExtensions.forEach(function(uuid) {
- enableExtension(uuid);
+ try {
+ enableExtension(uuid);
+ } catch(e) {
+ logExtensionError(uuid, e);
+ }
});
}
}